package cn.com.cfae.iras.doc.analyze.components.iaad;

import cn.com.cfae.iras.doc.analyze.beans.iaad.IaadIndicatorGradeDetail;
import cn.com.cfae.iras.doc.analyze.beans.iaad.IndustryIndicatorList;
import cn.com.cfae.iras.doc.analyze.beans.web.ContentAndPosition;
import cn.com.cfae.iras.doc.analyze.components.BaseComponent;
import cn.com.cfae.iras.doc.analyze.components.beans.ComponentResult;
import cn.com.cfae.iras.doc.analyze.parse.kv.KVText;
import cn.com.cfae.iras.doc.analyze.parse.model.ExtractBizModel;
import cn.com.cfae.iras.doc.analyze.parse.model.ExtractItem;
import com.google.gson.GsonBuilder;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Created by 佟媛媛 on 18/11/7.
 * 煤炭
 */

@Component("MT06")
@Scope("prototype")
public class MT06 extends BaseComponent {

    private static Logger log = LoggerFactory.getLogger(MT06.class);

    public List<IaadIndicatorGradeDetail> handlerIAAD(){
        List<IaadIndicatorGradeDetail> list = new ArrayList<>();
        IaadIndicatorGradeDetail XYPJ = getXYPJ();//企业信用评级结果
        if(XYPJ!=null) list.add(XYPJ);
        List<IaadIndicatorGradeDetail> SNDCL = getSNDCL();//上年度产量
        if(CollectionUtils.isNotEmpty(SNDCL)) list.addAll(SNDCL);
        List<IaadIndicatorGradeDetail> SNDXSJG = getSNDXSJG();//上一年平均销售价格
        if(CollectionUtils.isNotEmpty(SNDXSJG)) list.addAll(SNDXSJG);
        List<IaadIndicatorGradeDetail> SNDSCCB = getSNDSCCB();//上年度吨煤生产成本
        if(CollectionUtils.isNotEmpty(SNDSCCB)) list.addAll(SNDSCCB);
        List<IaadIndicatorGradeDetail> SYKCCL = getSYKCCL();//剩余可采储量
        if(CollectionUtils.isNotEmpty(SYKCCL)) list.addAll(SYKCCL);
        List<IaadIndicatorGradeDetail> AQSGCS = getAQSGCS();//近三年一期发生较大及以上安全事故次数
        if(CollectionUtils.isNotEmpty(AQSGCS)) list.addAll(AQSGCS);
        List<IaadIndicatorGradeDetail> HBCF = getHBCF();//近三年一期是否收到环保部门处罚
        if(CollectionUtils.isNotEmpty(HBCF)) list.addAll(HBCF);
        IaadIndicatorGradeDetail YSYSX_SXZE = getYSYSX_SXZE();//已使用授信占授信总额的比重
        if(YSYSX_SXZE!=null) list.add(YSYSX_SXZE);
        IaadIndicatorGradeDetail ZWRZGJYE_YXFZ = getZWRZGJYE_YXFZ();//债务融资工具余额在近一年有息负债中的占比
        if(ZWRZGJYE_YXFZ!=null) list.add(ZWRZGJYE_YXFZ);
        IaadIndicatorGradeDetail DWDBJE_JZC = getDWDBJE_JZC();//近一年或一期对外担保金额占净资产的比重
        if(DWDBJE_JZC!=null) list.add(DWDBJE_JZC);
        IaadIndicatorGradeDetail SXZC_ZZC = getSXZC_ZZC();//近一年或一期受限资产占总资产的比重
        if(SXZC_ZZC!=null) list.add(SXZC_ZZC);
        log.info("煤炭行业指标：{}",new GsonBuilder().create().toJson(list));
        return list;
    }

    //企业信用评级结果
//        1、企业信用评级结果 --》XYPJ
//        --》M-0、FXR.XYPJ
//        1、封皮提取
    private IaadIndicatorGradeDetail getXYPJ(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("QYXYPJJG");
            KVText value = getKVTextValue("M-0","FXTK","PJJG");
            if(value!=null && indicator!=null){
                return getIaadIndicatorGradeDetail(indicator,value.getText(),value.getPageNumber(),value.getText(),String.format("企业信用评级结果%s",value.getText()));
            }
            return null;
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //上年度产量（亿吨）
//        2、上年度产量（亿吨） --》SNDCL
//        1、近三年及一期煤炭产量，人工选择
    private List<IaadIndicatorGradeDetail> getSNDCL(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("SNDCL");
            List<IaadIndicatorGradeDetail> list = new ArrayList<>();
            List<KVText> kvTextList = getKVTextValues("M-5","MT","SNDCL");
            int pageNum = getChapterModel("M-5").getStartPage();
            if(CollectionUtils.isNotEmpty(kvTextList)){
                for(KVText kvText : kvTextList){
                    String value = kvText.getText();
                    double v = getDouble(value);
                    List<ContentAndPosition> textPositionList = getContentAndPositionList2(kvText);
                    if(StringUtils.isEmpty(value)){
                        continue;
                    }
                    IaadIndicatorGradeDetail iaadIndicatorGradeDetail = getIaadIndicatorGradeDetail(indicator,textPositionList,doubleToBigDecimal(v),pageNum,value,String.format("上年度产量%s",value));
                    if(iaadIndicatorGradeDetail!=null) list.add(iaadIndicatorGradeDetail);
                }
            }
            return list;
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //上一年平均销售价格（元/吨）
//        3、上一年平均销售价格（元/吨） --》SNDXSJG
//        "1、近三年及一期煤炭销售价格，人工选择
//                3、表格；"
    private List<IaadIndicatorGradeDetail> getSNDXSJG(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("SYNPJXSJG");
            List<IaadIndicatorGradeDetail> list = new ArrayList<>();
            int pageNum = getChapterModel("M-5").getStartPage();
            List<KVText> kvTextList = getKVTextValues("M-5","MT","SNDXSJG");
            if(CollectionUtils.isNotEmpty(kvTextList)){
                for(KVText kvText : kvTextList){
                    String value = kvText.getText();
                    double v = getDouble(value);
                    List<ContentAndPosition> textPositionList = getContentAndPositionList2(kvText);
                    if(StringUtils.isEmpty(value)){
                        continue;
                    }
                    IaadIndicatorGradeDetail iaadIndicatorGradeDetail = getIaadIndicatorGradeDetail(indicator,textPositionList,doubleToBigDecimal(v),pageNum,value,String.format("上一年平均销售价格%s",value));
                    if(iaadIndicatorGradeDetail!=null) list.add(iaadIndicatorGradeDetail);
                }
            }
            return list;
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //上年度吨煤生产成本（元/吨）
//        4、上年度吨煤生产成本（元/吨） --》SNDSCCB
//        "1、近三年及一期吨煤生产成本（平均成本），人工选择
//                3、表格；"
    private List<IaadIndicatorGradeDetail> getSNDSCCB(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("SNDDMSCCB");
            List<IaadIndicatorGradeDetail> list = new ArrayList<>();
            int pageNum = getChapterModel("M-5").getStartPage();
            List<KVText> kvTextList = getKVTextValues("M-5","MT","SNDSCCB");
            if(CollectionUtils.isNotEmpty(kvTextList)){
                for(KVText kvText : kvTextList){
                    String value = kvText.getText();
                    double v = getDouble(value);
                    List<ContentAndPosition> textPositionList = getContentAndPositionList2(kvText);
                    if(StringUtils.isEmpty(value)){
                        continue;
                    }
                    IaadIndicatorGradeDetail iaadIndicatorGradeDetail = getIaadIndicatorGradeDetail(indicator,textPositionList,doubleToBigDecimal(v),pageNum,value,String.format("上年度吨煤生产成本%s",value));
                    if(iaadIndicatorGradeDetail!=null) list.add(iaadIndicatorGradeDetail);
                }
            }
            return list;
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //剩余可采储量
//        5、剩余可采储量 --》SYKCCL
//        "1、表格形式；
//                2、按照剩余可采储量抽取，抽取多个值，人工确认；"
    private List<IaadIndicatorGradeDetail> getSYKCCL(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("SYKCCL");
            List<IaadIndicatorGradeDetail> list = new ArrayList<>();
            List<KVText> kvTextList = getKVTextValues("M-5","MT","SYKCCL");
            int pageNum = getChapterModel("M-5").getStartPage();
            if(CollectionUtils.isNotEmpty(kvTextList)){
                for(KVText kvText : kvTextList){
                    String value = kvText.getText();
                    double v = getDouble(value);
                    List<ContentAndPosition> textPositionList = getContentAndPositionList2(kvText);
                    if(StringUtils.isEmpty(value)){
                        continue;
                    }
                    IaadIndicatorGradeDetail iaadIndicatorGradeDetail = getIaadIndicatorGradeDetail(indicator,textPositionList,doubleToBigDecimal(v),pageNum,value,String.format("剩余可采储量%s",value));
                    if(iaadIndicatorGradeDetail!=null) list.add(iaadIndicatorGradeDetail);
                }
            }
            return list;
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //近三年一期发生较大及以上安全事故次数
//        6、近三年一期发生较大及以上安全事故次数 --》AQSGCS
//        "1、人员伤亡程度；
//                3、从M-5章节获取；
//    伤亡人数10人及以上为重大安全事故，2人及以上为较大安全事故"
    private List<IaadIndicatorGradeDetail> getAQSGCS(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("AQSGCS");
            List<IaadIndicatorGradeDetail> list = new ArrayList<>();
            int pageNum = getChapterModel("M-5").getStartPage();
            List<KVText> kvTextList = getKVTextValues("M-5","MT","AQSGCS");
            if(CollectionUtils.isNotEmpty(kvTextList)){
                for(KVText kvText : kvTextList){
                    String value = kvText.getText();
                    double v = getDouble(value);
                    List<ContentAndPosition> textPositionList = getContentAndPositionList2(kvText);
                    if(StringUtils.isEmpty(value)){
                        continue;
                    }
                    IaadIndicatorGradeDetail iaadIndicatorGradeDetail = getIaadIndicatorGradeDetail(indicator,textPositionList,doubleToBigDecimal(v),pageNum,value,String.format("近三年一期发生较大及以上安全事故次数%s",value));
                    if(iaadIndicatorGradeDetail!=null) list.add(iaadIndicatorGradeDetail);
                }
            }
            return list;
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //近三年一期是否收到环保部门处罚
//        7、近三年一期是否收到环保部门处罚 --》HBCF
//        "1、M-5章节抽取；
//                2、关键词匹配"
    private List<IaadIndicatorGradeDetail> getHBCF(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("HBBMCF");
            List<IaadIndicatorGradeDetail> list = new ArrayList<>();
            int pageNum = getChapterModel("M-5").getStartPage();
            List<KVText> kvTextList = getKVTextValues("M-5","MT","HBCF");
            if(CollectionUtils.isNotEmpty(kvTextList)){
                for(KVText kvText : kvTextList){
                    String value = kvText.getText();
                    double v = getDouble(value);
                    List<ContentAndPosition> textPositionList = getContentAndPositionList2(kvText);
                    if(StringUtils.isEmpty(value)){
                        continue;
                    }
                    IaadIndicatorGradeDetail iaadIndicatorGradeDetail = getIaadIndicatorGradeDetail(indicator,textPositionList,doubleToBigDecimal(v),pageNum,value,String.format("近三年一期是否收到环保部门处罚%s",value));
                    if(iaadIndicatorGradeDetail!=null) list.add(iaadIndicatorGradeDetail);
                }
            }
            return list;
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //已使用授信占授信总额的比重
//        8、已使用授信占授信总额的比重(%) --》已使用授信/授信总额 --》YSYSX/SXZE
//    //
//        "1、M-7获取已使用授信额度总计、授信总额总计；
//                2、公式：已使用授信/授信总额"
//    单位：%
    private IaadIndicatorGradeDetail getYSYSX_SXZE(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("YSYSX-SXZE");
            ExtractBizModel model = getModel("M-7","SX");
            KVText YSYSX = getKVTextValue(model,"YSYSX");
            KVText SXZE = getKVTextValue(model,"SXZE");
            int pageNum = getChapterModel("M-7").getStartPage();
            String YSYSXs=null,SXZEs=null;
            double YSYSXv=0,SXZEv=0,v=0;
            if(YSYSX!=null){
                YSYSXs = YSYSX.getText();
                YSYSXv = getDouble(YSYSXs);
            }
            if(SXZE!=null){
                SXZEs = SXZE.getText();
                SXZEv = getDouble(SXZEs);
            }
            if(StringUtils.isEmpty(YSYSXs) && StringUtils.isEmpty(SXZEs)){
                return null;
            }
            if(YSYSXv!=0 && SXZEv!=0){
                v = getTwoDecimal(YSYSXv/SXZEv);
            }
            YSYSXs=YSYSXs+model.getUnitType();
            SXZEs=SXZEs+model.getUnitType();
            return getIaadIndicatorGradeDetail(indicator,doubleToBigDecimal(v),"%",pageNum,String.format("已使用授信%s，授信总额%s",YSYSXs,SXZEs));
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //债务融资工具余额在近一年有息负债中的占比
//        9、债务融资工具余额在近一年有息负债中的占比(%) --》债务融资工具余额/有息负债 --》ZWRZGJYE/YXFZ
//        --》M-6、FXTK.ZWRZGJYE、ZCFZ.DQJK、ZCFZ.CQJK、ZCFZ.YNNDQFLDFZ、ZCFZ.YFZQ、ZCFZ.YFDQZQ、ZCFZ.YFCQZQ、ZCFZ.QTFLDFZ
//        "1、债务融资工具余额在M-3获取；
//                2、有息负债：
//            2.1短期借款、长期借款、一年内到期的非流动负债、应付债券，4个科目加和；
//            2.2债务融资工具余额/有息负债
//        2.3取近一年年报；"
//    单位：%
    private IaadIndicatorGradeDetail getZWRZGJYE_YXFZ(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("ZWYZGJYE-YXFZ");
            String ZWRZGJYES=null,DQJKS=null,CQJKS=null,YNNDQFLDFZS=null,YFZQS=null,YFDQZQS=null,YFCQZQS=null,QTFLDFZS=null;
            double ZWRZGJYE=0,DQJK=0,CQJK=0,YNNDQFLDFZ=0,YFZQ=0,YFDQZQ=0,YFCQZQ=0,QTFLDFZ=0,ALL=0,v=0;
            KVText ZWRZGJYEV = getKVTextValue("M-3","FXTK","ZWRZGJYE");
            int pageNum = getChapterModel("M-6").getStartPage();
            if(ZWRZGJYEV!=null){
                ZWRZGJYES = ZWRZGJYEV.getText();
                ZWRZGJYE = getDouble(ZWRZGJYES);
            }
            ExtractBizModel model = getModel("M-6","ZCFZ");
            Map<String, ExtractItem> ZCFZcol = model.getTable(getJYN(model.getTables()));
            if(MapUtils.isNotEmpty(ZCFZcol) && ZCFZcol.get("DQJK")!=null && ZCFZcol.get("DQJK").getValue()!=null){
                DQJKS = ZCFZcol.get("DQJK").getValue().getText();
                DQJK = getDouble(DQJKS);
            }
            if(MapUtils.isNotEmpty(ZCFZcol) && ZCFZcol.get("CQJK")!=null && ZCFZcol.get("CQJK").getValue()!=null){
                CQJKS = ZCFZcol.get("CQJK").getValue().getText();
                CQJK = getDouble(CQJKS);
            }
            if(MapUtils.isNotEmpty(ZCFZcol) && ZCFZcol.get("YNNDQFLDFZ")!=null && ZCFZcol.get("YNNDQFLDFZ").getValue()!=null){
                YNNDQFLDFZS = ZCFZcol.get("YNNDQFLDFZ").getValue().getText();
                YNNDQFLDFZ = getDouble(YNNDQFLDFZS);
            }
            if(MapUtils.isNotEmpty(ZCFZcol) && ZCFZcol.get("YFZQ")!=null && ZCFZcol.get("YFZQ").getValue()!=null){
                YFZQS = ZCFZcol.get("YFZQ").getValue().getText();
                YFZQ = getDouble(YFZQS);
            }
            if(MapUtils.isNotEmpty(ZCFZcol) && ZCFZcol.get("YFDQZQ")!=null && ZCFZcol.get("YFDQZQ").getValue()!=null){
                YFDQZQS = ZCFZcol.get("YFDQZQ").getValue().getText();
                YFDQZQ = getDouble(YFDQZQS);
            }
            if(MapUtils.isNotEmpty(ZCFZcol) && ZCFZcol.get("YFCQZQ")!=null && ZCFZcol.get("YFCQZQ").getValue()!=null){
                YFCQZQS = ZCFZcol.get("YFCQZQ").getValue().getText();
                YFCQZQ = getDouble(YFCQZQS);
            }
            if(MapUtils.isNotEmpty(ZCFZcol) && ZCFZcol.get("QTFLDFZ")!=null && ZCFZcol.get("QTFLDFZ").getValue()!=null){
                QTFLDFZS = ZCFZcol.get("QTFLDFZ").getValue().getText();
                QTFLDFZ = getDouble(QTFLDFZS);
            }
            ALL = DQJK+CQJK+YNNDQFLDFZ+YFZQ+YFDQZQ+YFCQZQ+QTFLDFZ;
            if(ZWRZGJYE!=0 && ALL!=0){
                v = getTwoDecimal(ZWRZGJYE/ALL);
            }
            if(StringUtils.isEmpty(ZWRZGJYES) && StringUtils.isEmpty(DQJKS) && StringUtils.isEmpty(CQJKS) && StringUtils.isEmpty(YNNDQFLDFZS) && StringUtils.isEmpty(YFZQS) &&
                    StringUtils.isEmpty(YFDQZQS) && StringUtils.isEmpty(YFCQZQS) && StringUtils.isEmpty(QTFLDFZS)){
                return null;
            }
            DQJKS=DQJKS+model.getUnitType();
            CQJKS=CQJKS+model.getUnitType();
            YNNDQFLDFZS=YNNDQFLDFZS+model.getUnitType();
            YFZQS=YFZQS+model.getUnitType();
            YFDQZQS=YFDQZQS+model.getUnitType();
            YFCQZQS=YFCQZQS+model.getUnitType();
            QTFLDFZS=QTFLDFZS+model.getUnitType();
            return getIaadIndicatorGradeDetail(indicator,doubleToBigDecimal(v),"%",pageNum,String.format("债务融资工具余额%s，短期借款%s，长期借款%s，一年内到期非流动负债%s，应付债券%s，应付短期债券%s，应付长期债券%s，其他非流动负债%s",ZWRZGJYES,DQJKS,CQJKS,YNNDQFLDFZS,YFZQS,YFDQZQS,YFCQZQS,QTFLDFZS));
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //近一年或一期对外担保金额占净资产的比重
//        10、近一年或一期对外担保金额占净资产的比重 --》对外担保总金额/净资产 --》DWDBJE/JZC
//        --》M-6、XYZJJG.DWDBJE、XYZJJG.JZC
//        "1、获取近一期；
//                2、M-6获取对外担保金额；
//            3、所有者权益=净资产
//        4、对外担保总金额/净资产；
//            5、如果对外担保总金额不存在，提示缺失；"
    private IaadIndicatorGradeDetail getDWDBJE_JZC(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("DWDBJE-JZC");
            String DWDBJES=null,JZCS=null;
            double DWDBJE=0,JZC=0,v=0;
            int pageNum = getChapterModel("M-6").getStartPage();
            KVText DWDBJEV = getKVTextValue("M-6","DWDB","DWDBJE");
            if(DWDBJEV!=null){
                DWDBJES=DWDBJEV.getText();
                DWDBJE=getDouble(DWDBJES);
            }
            ExtractBizModel model = getModel("M-6","ZCFZ");
            Map<String, ExtractItem> col = model.getTable(getJYQ(model.getTables()));
            if(MapUtils.isNotEmpty(col) && col.get("SYZQYHJ")!=null && col.get("SYZQYHJ").getValue()!=null){
                JZCS=col.get("SYZQYHJ").getValue().getText();
                JZC = getDouble(JZCS);
            }
            if(DWDBJE!=0 && JZC!=0){
                v = getTwoDecimal(DWDBJE/JZC);
            }
            if(StringUtils.isEmpty(DWDBJES) && StringUtils.isEmpty(JZCS)){
                return null;
            }
            DWDBJES=DWDBJES+getModel("M-6","DWDB").getUnitType();
            JZCS=JZCS+model.getUnitType();
            return getIaadIndicatorGradeDetail(indicator,doubleToBigDecimal(v),"%",pageNum,String.format("近一期对外担保总金额%s,近一期净资产%s",DWDBJES,JZCS));
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    //近一年或一期受限资产占总资产的比重
//        11、近一年或一期受限资产占总资产的比重（孰高原则）(%) --》受限资产总计/总资产 --》SXZC/ZZC
//        --》M-6、SXZC.SXZC、ZCFZ.ZCZJ
//        "1、受限资产披露一年一期，可以获取到2期；
//                2、受限资产总计/总资产；
//            3、2期受限资产都存在，比较比值大小，只存在一期，以存在数值为准；"
//    单位：%
    private IaadIndicatorGradeDetail getSXZC_ZZC(){
        try{
            IndustryIndicatorList indicator = getIndustryIndicatorList("SXZC-ZZC");
            KVText SXZC_kvText = getKVTextValue("M-6","SXZC","SXZC");
            int pageNum = getChapterModel("M-6").getStartPage();
            double SXZC=0,ZCZJ=0,ZCZJ2=0,v=0,v2=0;
            String SXZCS=null,ZCZJS=null,ZCZJS2=null;
            ExtractBizModel model = getModel("M-6","ZCFZ");
            if(SXZC_kvText!=null){
                SXZCS = SXZC_kvText.getText();
                SXZC = getDouble(SXZCS);
                Map<String, ExtractItem> col = model.getTable(getJYN(model.getTables()));
                if(MapUtils.isNotEmpty(col) && col.get("ZCZJ")!=null && col.get("ZCZJ").getValue()!=null){
                    ZCZJS = col.get("ZCZJ").getValue().getText();
                    ZCZJ = getDouble(ZCZJS);
                    if(SXZC!=0 && ZCZJ!=0){
                        v = getTwoDecimal(SXZC/ZCZJ);
                    }
                }
                Map<String, ExtractItem> col2 = model.getTable(getJYQ(model.getTables()));
                if(MapUtils.isNotEmpty(col2) && col2.get("ZCZJ")!=null && col2.get("ZCZJ").getValue()!=null){
                    ZCZJS2 = col2.get("ZCZJ").getValue().getText();
                    ZCZJ2 = getDouble(ZCZJS2);
                    if(SXZC!=0 && ZCZJ2!=0){
                        v2 = getTwoDecimal(SXZC/ZCZJ2);
                    }
                }
            }
            if(StringUtils.isEmpty(SXZCS) && StringUtils.isEmpty(ZCZJS)){
                return null;
            }else if(StringUtils.isEmpty(SXZCS) && StringUtils.isEmpty(ZCZJS2)){
                return null;
            }
            SXZCS=SXZCS+getModel("M-6","SXZC").getUnitType();
            ZCZJS=ZCZJS+model.getUnitType();
            ZCZJS2=ZCZJS2+model.getUnitType();
            return getIaadIndicatorGradeDetail(indicator,(v>v2?doubleToBigDecimal(v):doubleToBigDecimal(v2)),"%",pageNum,String.format("受限资产%s，近一年总资产%s，近一期总资产%s",SXZCS,ZCZJS,ZCZJS2));
        }catch (Exception e){
            log.error(e.getMessage(),e);
            return null;
        }
    }

    @Override
    public List<ComponentResult> handlerM() {
        return null;
    }

    @Override
    public List<ComponentResult> handlerBM() {
        return null;
    }

    @Override
    public List<ComponentResult> handlerDM() {
        return null;
    }

    @Override
    public List<ComponentResult> handlerBDM() {
        return null;
    }
}
